Skip to content

Conversation

sergiossm
Copy link

  • Add _extract_cte_names() method to identify CTE names in SQL queries
  • Add _add_schema_prefix_smart() method to intelligently prefix table names while preserving CTE names
  • Update run_sql() method to use smart schema prefixing instead of naive string replacement
  • Add comprehensive tests for CTE functionality including:
    • CTE name extraction
    • Schema prefixing with CTEs
    • Multiple CTEs handling
    • Already schema-qualified table handling
    • End-to-end integration tests

Fixes #19889

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Fixes # (issue)

New Package?

Did I fill in the tool.llamahub section in the pyproject.toml and provide a detailed README.md for my new integration or package?

  • Yes
  • No

Version Bump?

Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

  • Yes
  • No

Type of Change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

Your pull-request will likely not be merged unless it is covered by some form of impactful unit testing.

  • I added new unit tests to cover this change
  • I believe this change is already covered by existing unit tests

Suggested Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added Google Colab support for the newly added notebooks.
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I ran uv run make format; uv run make lint to appease the lint gods

…ixing

- Add _extract_cte_names() method to identify CTE names in SQL queries
- Add _add_schema_prefix_smart() method to intelligently prefix table names while preserving CTE names
- Update run_sql() method to use smart schema prefixing instead of naive string replacement
- Add comprehensive tests for CTE functionality including:
  - CTE name extraction
  - Schema prefixing with CTEs
  - Multiple CTEs handling
  - Already schema-qualified table handling
  - End-to-end integration tests

Fixes run-llama#19889
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Sep 17, 2025
@AstraBert
Copy link
Member

Hey there @sergiossm, I'll happily review your PR once the tests are passing (currently the ones you introduced are failing in CI) and linting/type checking are ok :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size:L This PR changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature Request]: Add CTE support in SQLWrapper
2 participants